import { checkedUserPassword } from '@/req/userAjax'

// 账户校验
var uPattern = /^([\u4e00-\u9fa5]|[a-zA-Z0-9_-]){3,8}$/
export var validateAccount = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('账号不能为空!'))
  } else if (!uPattern.test(value)) {
    callback(new Error('请输入中文,字母,数字或下划线!'))
  } else {
    callback()
  }
}

// 密码校验
var pwdPattern = /^[a-zA-Z0-9_-]{3,9}$/
export var validatePassword = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('密码不能为空'))
  } else if (!pwdPattern.test(value)) {
    callback(new Error('请输入字母,数字或下划线!'))
  } else {
    callback()
  }
}

// 用户组校验
export var validateuserGroup = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请选择用户组'))
  } else {
    callback()
  }
}

// 原始密码校验
export var validatePrePassword = async (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入原始密码'))
  } else if (!pwdPattern.test(value)) {
    callback(new Error('请输入字母,数字或下划线!'))
  } else {
    // 发送Ajax 检验原始密码是否正确
    const { code, msg } = await checkedUserPassword(value)
    if (code === '00') {
      callback()
    } else {
      callback(new Error(msg))
    }
  }
}

// 修改面校验
export var validateNewPassword = o => {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error('请确认密码'))
      //
    } else {
      if (o.enterPassword !== '') {
        o.$refs.ruleForm.validateField('enterPassword')
        console.log(o.$refs.ruleForm)
      }
      callback()
    }
  }
}

export var validateEnterPassword = o => {
  return (rule, value, callback) => {
    if (value === '') {
      callback(new Error('请确认密码'))
      //
    } else if (value !== o.ruleForm.password) {
      callback(new Error('两次输入密码不一致!'))
    } else {
      callback()
    }
  }
}
